﻿using System;
using DOHS_WM6.Classes;
using DOHS_WM6.Enumeradores;
using System.Windows.Forms;
using System.Collections.Generic;

namespace DOHS_WM6.Fichas
{
    public partial class formCondicaoDentaria4 : FormDOHS
    {
        #region Propriedades

        private Dictionary<string, TipoCampo> Campos = new Dictionary<string, TipoCampo>();

        #endregion

        #region Construtor
        public formCondicaoDentaria4()
        {
            InitializeComponent();

            Campos.Add("txtCoroa48", TipoCampo.Coroa);
            Campos.Add("txtCoroa47", TipoCampo.Coroa);
            Campos.Add("txtCoroa46", TipoCampo.Coroa);
            Campos.Add("txtCoroa45", TipoCampo.Coroa);
            Campos.Add("txtCoroa44", TipoCampo.Coroa);
            Campos.Add("txtCoroa43", TipoCampo.Coroa);
            Campos.Add("txtCoroa42", TipoCampo.Coroa);
            Campos.Add("txtCoroa41", TipoCampo.Coroa);
            Campos.Add("txtRaiz48", TipoCampo.Raiz);
            Campos.Add("txtRaiz47", TipoCampo.Raiz);
            Campos.Add("txtRaiz46", TipoCampo.Raiz);
            Campos.Add("txtRaiz45", TipoCampo.Raiz);
            Campos.Add("txtRaiz44", TipoCampo.Raiz);
            Campos.Add("txtRaiz43", TipoCampo.Raiz);
            Campos.Add("txtRaiz42", TipoCampo.Raiz);
            Campos.Add("txtRaiz41", TipoCampo.Raiz);
            Campos.Add("txtTratamento48", TipoCampo.Tratamento);
            Campos.Add("txtTratamento47", TipoCampo.Tratamento);
            Campos.Add("txtTratamento46", TipoCampo.Tratamento);
            Campos.Add("txtTratamento45", TipoCampo.Tratamento);
            Campos.Add("txtTratamento44", TipoCampo.Tratamento);
            Campos.Add("txtTratamento43", TipoCampo.Tratamento);
            Campos.Add("txtTratamento42", TipoCampo.Tratamento);
            Campos.Add("txtTratamento41", TipoCampo.Tratamento);
        }
        #endregion

        #region Metodos

        private void HabilitaBotoes(bool ativo)
        {
            btn0.Enabled = ativo;
            btn1.Enabled = ativo;
            btn2.Enabled = ativo;
            btn3.Enabled = ativo;
            btn4.Enabled = ativo;
            btn5.Enabled = ativo;
            btn6.Enabled = ativo;
            btn7.Enabled = ativo;
            btn8.Enabled = ativo;
            btn9.Enabled = ativo;
            btnA.Enabled = ativo;
            btnB.Enabled = ativo;
            btnC.Enabled = ativo;
            btnD.Enabled = ativo;
            btnE.Enabled = ativo;
            btnF.Enabled = ativo;
            btnG.Enabled = ativo;
            btnP.Enabled = ativo;
            btnT.Enabled = ativo;
        }

        private void ValidacaoCodigoRaiz()
        {
            string codigoCoroa = string.Empty;

            switch (this.txtFocus.Name)
            {
                case "txtRaiz48":
                    codigoCoroa = txtCoroa48.Text;
                    break;
                case "txtRaiz47":
                    codigoCoroa = txtCoroa47.Text;
                    break;
                case "txtRaiz46":
                    codigoCoroa = txtCoroa46.Text;
                    break;
                case "txtRaiz45":
                    codigoCoroa = txtCoroa45.Text;
                    break;
                case "txtRaiz44":
                    codigoCoroa = txtCoroa44.Text;
                    break;
                case "txtRaiz43":
                    codigoCoroa = txtCoroa43.Text;
                    break;
                case "txtRaiz42":
                    codigoCoroa = txtCoroa42.Text;
                    break;
                case "txtRaiz41":
                    codigoCoroa = txtCoroa41.Text;
                    break;
            }

            if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
        }

        private void ValidacaoCodigoTratamento()
        {
            string codigoCoroa = string.Empty;
            string codigoRaiz = string.Empty;

            switch (txtFocus.Name)
            {
                case "txtTratamento48":
                    codigoCoroa = txtCoroa48.Text;
                    codigoRaiz = txtRaiz48.Text;
                    break;
                case "txtTratamento47":
                    codigoCoroa = txtCoroa47.Text;
                    codigoRaiz = txtRaiz47.Text;
                    break;
                case "txtTratamento46":
                    codigoCoroa = txtCoroa46.Text;
                    codigoRaiz = txtRaiz46.Text;
                    break;
                case "txtTratamento45":
                    codigoCoroa = txtCoroa45.Text;
                    codigoRaiz = txtRaiz45.Text;
                    break;
                case "txtTratamento44":
                    codigoCoroa = txtCoroa44.Text;
                    codigoRaiz = txtRaiz44.Text;
                    break;
                case "txtTratamento43":
                    codigoCoroa = txtCoroa43.Text;
                    codigoRaiz = txtRaiz43.Text;
                    break;
                case "txtTratamento42":
                    codigoCoroa = txtCoroa42.Text;
                    codigoRaiz = txtRaiz42.Text;
                    break;
                case "txtTratamento41":
                    codigoCoroa = txtCoroa41.Text;
                    codigoRaiz = txtRaiz41.Text;
                    break;
            }

            if (codigoCoroa == "1" || codigoCoroa == "2" || codigoCoroa == "B" || codigoCoroa == "C")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "3" || codigoCoroa == "D")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0" || codigoRaiz == "8")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else
                    btnP.Enabled = true;
            }
            else if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "6" || codigoCoroa == "F")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn0.Enabled = true;
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn3.Enabled = true;
                    btn4.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btn9.Enabled = true;
                    btnA.Enabled = true;
                    btnB.Enabled = true;
                    btnC.Enabled = true;
                    btnD.Enabled = true;
                    btnE.Enabled = true;
                    btnF.Enabled = true;
                    btnP.Enabled = true;
                }
            }
            else if (codigoCoroa == "7" || codigoCoroa == "G")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn4.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
                btnA.Enabled = true;
                btnB.Enabled = true;
                btnC.Enabled = true;
                btnD.Enabled = true;
                btnE.Enabled = true;
                btnF.Enabled = true;
                btnP.Enabled = true;
            }
        }

        #endregion

        #region Eventos
        private void btn_Click(object sender, EventArgs e)
        {
            base.Button_Click(sender, e);
        }

        private void txt_GotFocus(object sender, EventArgs e)
        {
            base.TextBoxGotFocus(sender, e);

            if (Campos[this.txtFocus.Name] == TipoCampo.Coroa)
            {
                this.HabilitaBotoes(true);
                this.btnP.Enabled = false;
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Raiz)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoRaiz();
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Tratamento)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoTratamento();
            }
        }

        private void btnLimpar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Tem certeza que deseja Limpar esta Ficha?",
                                "Atenção",
                                MessageBoxButtons.OKCancel,
                                MessageBoxIcon.Question,
                                MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                txtCoroa41.Text = "0";
                txtCoroa42.Text = "0";
                txtCoroa43.Text = "0";
                txtCoroa44.Text = "0";
                txtCoroa45.Text = "0";
                txtCoroa46.Text = "0";
                txtCoroa47.Text = "0";
                txtCoroa48.Text = "0";
                txtRaiz41.Text = "0";
                txtRaiz42.Text = "0";
                txtRaiz43.Text = "0";
                txtRaiz44.Text = "0";
                txtRaiz45.Text = "0";
                txtRaiz46.Text = "0";
                txtRaiz47.Text = "0";
                txtRaiz48.Text = "0";
                txtTratamento41.Text = "0";
                txtTratamento42.Text = "0";
                txtTratamento43.Text = "0";
                txtTratamento44.Text = "0";
                txtTratamento45.Text = "0";
                txtTratamento46.Text = "0";
                txtTratamento47.Text = "0";
                txtTratamento48.Text = "0";
            }
        }

        private void btnGravar_Click(object sender, EventArgs e)
        {
            //Dente 41_81
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_41_81.Coroa = txtCoroa41.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_41_81.Raiz = txtRaiz41.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_41_81.Tratamento = txtTratamento41.Text;
            //Dente 42_82
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_42_82.Coroa = txtCoroa42.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_42_82.Raiz = txtRaiz42.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_42_82.Tratamento = txtTratamento42.Text;
            //Dente 43_83
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_43_83.Coroa = txtCoroa43.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_43_83.Raiz = txtRaiz43.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_43_83.Tratamento = txtTratamento43.Text;
            //Dente 44_84
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_44_84.Coroa = txtCoroa44.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_44_84.Raiz = txtRaiz44.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_44_84.Tratamento = txtTratamento44.Text;
            //Dente 45_85
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_45_85.Coroa = txtCoroa45.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_45_85.Raiz = txtRaiz45.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_45_85.Tratamento = txtTratamento45.Text;
            //Dente 46
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_46.Coroa = txtCoroa46.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_46.Raiz = txtRaiz46.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_46.Tratamento = txtTratamento46.Text;
            //Dente 47
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_47.Coroa = txtCoroa47.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_47.Raiz = txtRaiz47.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_47.Tratamento = txtTratamento47.Text;
            //Dente 48
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_48.Coroa = txtCoroa48.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_48.Raiz = txtRaiz48.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_48.Tratamento = txtTratamento48.Text;

            ControleFormularios.MostraProximaFicha();
        }

        private void btnVoltar_Click(object sender, EventArgs e)
        {
            ControleFormularios.MostraFichaAnterior();
        }

        public override void MostraFormulario()
        {
            txtCoroa41.Focus();

            //Dente 41_81
            txtCoroa41.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_41_81.Coroa;
            txtRaiz41.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_41_81.Raiz;
            txtTratamento41.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_41_81.Tratamento;
            //Dente 42_82
            txtCoroa42.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_42_82.Coroa;
            txtRaiz42.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_42_82.Raiz;
            txtTratamento42.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_42_82.Tratamento;
            //Dente 43_83
            txtCoroa43.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_43_83.Coroa;
            txtRaiz43.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_43_83.Raiz;
            txtTratamento43.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_43_83.Tratamento;
            //Dente 44_84
            txtCoroa44.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_44_84.Coroa;
            txtRaiz44.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_44_84.Raiz;
            txtTratamento44.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_44_84.Tratamento;
            //Dente 45_85
            txtCoroa45.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_45_85.Coroa;
            txtRaiz45.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_45_85.Raiz;
            txtTratamento45.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_45_85.Tratamento;
            //Dente 46
            txtCoroa48.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_46.Coroa;
            txtRaiz48.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_46.Raiz;
            txtTratamento48.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_46.Tratamento;
            //Dente 47
            txtCoroa47.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_47.Coroa;
            txtRaiz47.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_47.Raiz;
            txtTratamento47.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_47.Tratamento;
            //Dente 48
            txtCoroa48.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_48.Coroa;
            txtRaiz48.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_48.Raiz;
            txtTratamento48.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_48.Tratamento;

            base.MostraFormulario();
        }
        #endregion   
    }
}